package com.xyz.FileTest.ErgodicPath;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        // 创建新文件对象，该对象指向一个文件夹
        File f = new File("/Users/chutianshu");
        // 创建文件数组 fs1,获取上面对象遍历文件和子目录的文件对象
        File[] fs1 = f.listFiles(); // 列出所有文件和子目录
        printFiles(fs1);
        // 在 listFiles 方法构建文件数组时，加上删选条件
        // 创建一个 FilenameFilter 对象，文件名过滤对象
        // 通过一个返回 bool 值得 accept 方法，来选出需要的文件放入数组
        // 不符合条件的不会放入
        File[] fs2 = f.listFiles(new FilenameFilter() { // 仅列出.exe文件
            public boolean accept(File dir, String name) {
                return name.endsWith(".cap"); // 返回true表示接受该文件
            }
        });
        printFiles(fs2);
    }

    // 遍历文件数组，打印文件信息
    static void printFiles(File[] files) {
        System.out.println("==========");
        if (files != null) {
            for (File f : files) {
                System.out.println(f);
            }
        }
        System.out.println("==========");
    }
}
